package zzg.study.serialize;


import zzg.study.serialize.impl.JSONSerializer;

/**
 * @Classname Serializer
 * @Description 序列化接口
 * @Date 2023/11/28 21:53
 * @Author zhuzhenguo
 */

public interface Serializer {

    /**
     * 定义了一个名为 DEFAULT 的常量，并将其初始化为 new JSONSerializer() 的返回值
     */
    Serializer DEFAULT = new JSONSerializer();

    /**
     * 序列化算法
     */
    byte getSerializerAlgorithm();

    /**
     * java 对象转换成二进制(字节数组)
     */
    byte[] serialize(Object object);

    /**
     * 二进制（字节数组）转换成 java 对象
     */
    <T> T deserialize(Class<T> clazz, byte[] bytes);

}
